States = Class:Create()
States.list = {}
States.current = false;

function States:Register(name, class)
	self.list[name] = class;
	return class;
end

function States:Current()
	return self.current;
end

function States:Change(value)
	self.list[value]:Start()
	
	self.current = self.list[value]
	
	return class; -- Possible chaining?
end